﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CapaNegocio;
using System.Collections;
using CapaDatos;

public partial class abmPresupuesto_AdministrarEstadoPresupuesto : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["UsuLogin"] == null)
            {
                Response.Redirect("../Default.aspx", true);
            }
            else
            {
                List<Estado> estadosL = Estado.buscarEstados();
                estadosPresupuesto .DataSource = estadosL;
                estadosPresupuesto.DataTextField = "descripcion";
                estadosPresupuesto.DataValueField = "id";
                estadosPresupuesto.DataBind();

                Usuario usu = ((Usuario)(Session["UsuLogin"]));
                Label1.Text = usu.Apellido + ", " + usu.Nombre + " (" + usu.Perfil.Nombre + ")";
            }

        }

    }
    protected void botonBuscar_Click(object sender, EventArgs e)
    {
        Presupuesto presupuesto = Presupuesto.buscarPresupuesto(Convert.ToInt64(TextBoxNroPresup.Text));
        if (presupuesto!=null)
        {
            Session["Presupuesto"] = presupuesto;
            TextBoxEstadoActual.Text = presupuesto.Estado.Descripcion;
        }
        else
        {

            Session["error"] = "El presupuesto con numero: " + TextBoxNroPresup.Text + " no existe. Ingrese otro número de presupuesto.";
            Session["ruta"] = "abmPresupuesto/AdministrarEstadoPresupuesto.aspx";
            Response.Redirect("../Error.aspx");
        }
    }
    protected void botonCancelar_Click(object sender, EventArgs e)
    {
        if (Session["Presupuesto"] != null)
        {
            Session.Remove("Presupuesto");
        }

        Response.Redirect("../MenuAdministrativo.aspx");

    }
    protected void botonAceptar_Click(object sender, EventArgs e)
    {
        Presupuesto presupuesto = ((Presupuesto)Session["Presupuesto"]);

        if (presupuesto != null)
        {
            if (presupuesto.Estado.Id != (int)PresupuestoEnum.PRESUPUESTO_APROBADO)
            {
                int idEstado = Convert.ToInt32(estadosPresupuesto.SelectedValue);
                presupuesto.cambiarEstado(idEstado);

                if ((int)PresupuestoEnum.PRESUPUESTO_APROBADO == idEstado)
                { 
                    Session["mensaje"] = "Se ha cambiado el estado del presupuesto: " + presupuesto.Id + ". La misma esta preparada para poder ser trabajada.";
                }else{
                    Session["mensaje"] = "Se ha cambiado el estado del presupuesto: " + presupuesto.Id ;
                }
                Session.Remove("Presupuesto");
                Session["ruta"] = "MenuAdministrativo.aspx";
                Response.Redirect("../Exito.aspx");
            }
            else
            {
                Session["error"] = "El presupuesto ya se encuentra aprobado";
                Session["ruta"] = "MenuAdministrativo.aspx";
                Response.Redirect("../Error.aspx");
            }
        }
        else
        {
            Session["error"] = "Para poder cambiar el estado de un presupuesto primero debe buscarlo";
            Session["ruta"] = "abmPresupuesto/AdministrarEstadoPresupuesto.aspx";
            Response.Redirect("../Error.aspx");
        }
    }
}